
// 1. 注册
// 1.1 得到用户输入
const newName = document.querySelector('#newName')
const newAccount = document.querySelector('#newUname')
const newPw = document.querySelector('#newPw')
const span = document.querySelector('.information div:nth-child(4) span')
const form = document.querySelector('form')

// 1.2 验证用户名输入
newAccount.addEventListener('change', verifyAccount)
// 封装函数
function verifyAccount() {
  const reg = /^[a-zA-Z0-9_]{6,10}$/
  if (!reg.test(newAccount.value)) {
    span.innerHTML = '账号格式错误，请输入6~10位的字母、数字或_'
    return false
  }

  span.innerHTML = ''
  return true
}

// 1.3 验证密码输入
newPw.addEventListener('change', verifyPw)
// 封装函数
function verifyPw() {
  const reg = /^[a-zA-Z0-9-_]{6,20}$/
  if (!reg.test(newPw.value)) {
    span.innerHTML = '密码格式错误，请输入6~20位的字母、数字或_'
    return false
  }

  span.innerHTML = ''
  return true
}


// 2. 提交模块
form.addEventListener('submit', (e) => {
  // 阻止默认事件
  e.preventDefault()

  if (verifyAccount() && verifyPw()) {
    // 2.1 数据存储到本地
    // 先获取本地数据(数组) 将本次新用户数据push到数组中，再将新数组数据存储到本地
    const storedData = localStorage.getItem('exam-data')
    // bug修复：解决本地数据不存在情况
    let userData = storedData ? JSON.parse(storedData) : []

    const user = {
      id: Array.isArray(userData) ? userData.length : 0,
      name: newName.value,
      account: newAccount.value,
      pw: newPw.value,
      historicalScore: [],
    }
    userData.push(user)
    localStorage.setItem('exam-data', JSON.stringify(userData))

    alert('注册成功')
    location.href = './index.html'
  }
})